﻿package kit4j.ui.cs.full;

import java.awt.Image;

/**
 * 富组件接口。实现诸如设置背景图像等功能的组件需要实现的接口。
 * 
 * @author MiniKnife
 * 
 */
public interface FullComponent {
	/**
	 * 设置组件的背景图。
	 * 
	 * @param img
	 *            背景图
	 */
	void setBackgroundImage(Image img);

	/**
	 * 返回组件的背景图。
	 * 
	 * @return 组件的背景图，如果没有设置，则返回null。
	 */
	Image getBackgroundImage();

	/**
	 * 设置组件背景图的布局属性。
	 * 
	 * @param bgc
	 *            背景图的布局属性
	 */
	void setBackgroundConstraints(BackgroundConstraints bgc);

	/**
	 * 返回组件背景图的布局属性。
	 * 
	 * @return 背景图的布局属性
	 */
	BackgroundConstraints getBackgroundConstraints();

	/**
	 * 设置是否自动为该组件的子组件生成背景图。 
	 * 如果设置为true，则在为该组件设置背景图时，应该自动为其子组件生成并设置对应的背景图。
	 * 
	 * @param autoGenerateComponentsBackgroundImage
	 *            如果要自动为子组件生成背景图，则为true，否则为false
	 */
	void setAutoGenerateComponentsBackgroundImage(
			boolean autoGenerateComponentsBackgroundImage);

	/**
	 * 返回是否自动为该组件的子组件生成背景图。
	 * 
	 * @return 如果自动为子组件生成背景图，则为true，否则为false。
	 */
	boolean isAutoGenerateComponentsBackgroundImage();
}
